Memory Examined
Volume Number: 1
Issue Number: 9
Column Tag: The Electrical Mac
"Mac Memory Examined" 
By Jeff Mitchell, President, Digital Solutions, MacTutor Contributing
The Macintosh has been unique among personal computers in that it was the first
computer introduced with a minimum of 128K Bytes of RAM that was immediately
criticized for not having enough. The Fat Mac has quieted that criticism somewhat, and
there are rumors of even more memory upgrades coming. [Experience has now shown
that the Mac design required a minimum of 512K RAM and 800K dual floppy drives to
be really practical and friendly to the user. We have the memory now but the disk
bound nature of the new application packages is making disk juggling a full time Mac
occupation! Say, didn't the old "Flippy" Lisa drives support 800K? That early Mac
design was right-on capacity wise. -Ed.]
In this article I will describe the basic internal architecture of dynamic RAM,
explore the design tradeoffs that have led to the memory configuration and the data
access techniques employed in the Macintosh, and describe the memory map with its
various screen, sound, and disk speed buffers.
More dynamic RAMs are sold than any other type of semiconductor device in the
world. This is due to two major factors. First, the demand by computer manufacturers
for inexpensive, high density memory. Secondly, semiconductor manufacturers use
dynamic RAMs as a testbed for their IC process technology. The very regular structure
of one memory cell repeated thousands of times, plus the very high demand for these
devices allow the manufacturers to develop new, smaller device geometries with
reasonably low risk and then use the large demand to speed the improvement of
production yields. Once the technology has been refined, it is used to develop other
products. Semiconductor manufacturers have admitted to being in the dynamic RAM
market not necessarily to make money, but only to break even, in order to have this
development vehicle available to them.
Each bit in a dynamic RAM consists of a transistor and a capacitor. This is why
such very high densities can be attained, since each individual cell is so small. In
contrast, each bit in a static RAM consists of four or six transistors, arranged to form
a latch. Since each cell in a static RAM is about 4 times as large as in a dynamic RAM,
static RAMs lag about one generation behind dynamic RAMs in density (e.g. 64K static
RAMs became available about the time 256K dynami Q-and-Ath dynamic RAMs, the
capacitor used as the memory element is not perfectly insulated, allowing the charge to
leak off over time. Thus it may at some point actually change state unless the charge is
restored. The charge can be restored by performing either a read or write operation
on the cell. This process is called refreshing and must be performed on all cells every
2 milliseconds with most 64K RAMs, or every 4 milliseconds with 265K RAMs.
Internally, the memory cells are arranged in a matrix of rows and columns. The
intersection of a row address and a column address selects a single cell. Dynamic RAMs
are usually packaged in a 16 pin package, which means the addresses must be
multiplexed due to pin limitations. First the row addresses are presented along with
the row address strobe (RAS), then the column addresses and the column address
strobe (CAS) some time later. A very important advantage to the matrix configuration
is that when a particular row is accessed, all the cells on that row are refreshed; each
cell does not have to be refreshed individually.
The RAM in the Macintosh is shared between the processor and the screen, rather
than the screen having a separate RAM area of its own. This is both a blessing and a
curse. The blessing is that the screen accesses are frequent enough that there is no
need for special circuitry to keep the RAM refreshed. The curse is that the processor
is denied access to the RAM about 34% of the time while the screen is being refreshed.
The display RAM is bit-mapped, meaning that for each pixel on the screen there
is a corresponding bit in memory. As the electron beam sweeps across the CRT, it is
turned on or off depending upon the state of the bit assigned to that pixel (1 = off, or
black; 0 = on, or white).
How can both the screen and the processor use the same RAM? The Macintosh
memory design uses a standard technique called interleaving, where the screen and the
processor alternate having access to the memory. Since the screen cannot be denied
access, the processor must wait if there is a potential memory conflict (Figure 1).
This type of RAM configuration is known as dual-port, where there are two
independent and (seemingly) non-conflicting paths into the same memory area.
There are actually two screen buffers in RAM. The main buffer located at
$7A700 ($1A700 in a 128K Mac), and an alternate buffer located at $72700
($12700). Port A bit 6 of the 6522 VIA (Versatile Interface Adapter) is factored into
the address decoding logic for the screen RAM and determines which buffer will be
displayed. Figure 2 graphically describes the memory map and Figure 3 is a table
showing the address location and effect on the memory map of VIA Port A.
In addition to the screen memory, the RAM also has a dedicated area set aside for
the sound/disk speed buffer. This is accessed at the end of every horizontal retrace
period and supplies an 8 bit value to the sound generator PWM (pulse width
modulator) and a 6 bit value which is used to control disk motor speed. Again, as with
the screen RAM, there is a main and alternate buffer at $7FD00 ($1FD00) and
$7A100 ($1A100) respectively.
The memory access scheme for the ROM is much simpler than that of the RAM,
since only the processor needs access to it. It is located at $400000 in both 512K and
128K Macs, and extends to $40FFFF (64K Bytes). ROM accesses always occur at full
speed, with no wait states.
The ROM upgrade, rumored to be out this fall, expands the size of the ROM to
128K. It is interesting to note that the two ROMs are the only chips that are in
sockets, suggesting that Apple foresaw this eventual need to revise and expand the
ROMs. Unfortunately, any additional upgrades beyond 128K can only enhance and/or
debug the ROM code unless there is (once again, as with the 256K RAMs) a new circuit
board, since the ROM sockets cannot accommodate devices larger than 64K x 8 ( there
are two ROMs, making 128K total).
As with the screen and sound/disk speed buffers, there is a bit which affects the
mapping of the entire RAM and ROM. The overlay bit (Figure 3) remaps the ROM to
$000000 and the RAM to $600000 on reset. This is because the first four bus cycles
after a reset, the 68000 fetches the supervisor stack pointer and the program counter
from memory location $000000. This is where the RAM resides, but it contains
invalid data at reset, so the ROM is placed there temporarily. After the exception
tables are initialized and everything is set up, the overlay bit is cleared and the
memory map returns to its normal configuration.
The electrical design of the Macintosh is elegant, although following in Apple
tradition, is somewhat simplistic. For example, the address decoding for write
operations to the 8530 SCC (Serial Communications Controller) relies on the 68000
to place the 8 bits of data on the high byte of the data bus when it is actually doing a
write to the low byte. This it does, but Motorola warns that this is "a result of current
implementation and may not appear on future devices." Apple is obviously gambling
that Motorola won't change the implementation and that any parts they may buy from
another source will perform identically. The benefit here is that the fewer the
number of parts, the less there is to break and the cheaper the product is to
manufacture.
Stay tuned for more Mac hardware, including future Apple Bus construction
projects! If you have questions are ideas for future hardware topics, please share them
with us. Write "The Electrical Mac" care of MacTutor.
Write for Mactutor
Earn while you learn!